স্প্রিং জেডিবিসি (Spring JDBC)-তে Auditing হল একটি প্রক্রিয়া যার মাধ্যমে ডেটাবেসে করা পরিবর্তনগুলো ট্র্যাক করা হয়। সাধারণত এটি ব্যবহৃত হয় এমন ডেটা রেকর্ডের সৃষ্টির সময়, সংশোধন এবং মুছে ফেলার সময়—এই সমস্ত ক্রিয়াকলাপের একটি ইতিহাস রাখার জন্য। Auditing ডেটাবেসের জন্য গুরুত্বপূর্ণ কারণ এটি ডেটার পরিবর্তন এবং ব্যবহারের উপর নজর রাখতে সাহায্য করে, যা নিরাপত্তা, অভ্যন্তরীণ অডিট এবং নিয়ম-নীতি মেনে চলার জন্য অপরিহার্য।
স্প্রিং জেডিবিসি-তে auditing কার্যকর করতে, সাধারণত নিম্নলিখিত কাজগুলো করা হয়:
স্প্রিং ফ্রেমওয়ার্কের মাধ্যমে auditing পরিচালনা করার জন্য, আপনি কিছু অতিরিক্ত স্টেপ বা কাস্টম কোড ব্যবহার করতে পারেন যেমন:
created_by
: সৃষ্টিকারী ব্যবহারকারীর নাম।created_at
: সৃষ্টির তারিখ এবং সময়।updated_by
: শেষ আপডেটকারী ব্যবহারকারীর নাম।updated_at
: আপডেটের তারিখ এবং সময়।JdbcTemplate
এবং DataSource
এর মাধ্যমে এই পরিবর্তনগুলির জন্য auditing তথ্য স্টোর করতে পারেন। উদাহরণস্বরূপ, JdbcTemplate
-এর update
মেথড ব্যবহার করে আপনি ডেটা ইনসার্ট বা আপডেট করার সময় audit তথ্য যোগ করতে পারেন।এখানে একটি উদাহরণ দেওয়া হলো, যেখানে একটি Employee টেবিলের auditing করা হবে:
টেবিলের কাঠামো যাতে auditing ফিল্ডগুলি অন্তর্ভুক্ত থাকে:
CREATE TABLE employee (
id INT PRIMARY KEY,
name VARCHAR(50),
salary DECIMAL(10, 2),
created_by VARCHAR(50),
created_at TIMESTAMP,
updated_by VARCHAR(50),
updated_at TIMESTAMP
);
এখানে EmployeeDao
ক্লাসে auditing তথ্য যোগ করা হবে:
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.Date;
public class EmployeeDao {
private JdbcTemplate jdbcTemplate;
// Setter method for JdbcTemplate
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
// Insert employee with auditing fields
public void addEmployee(Employee employee, String createdBy) {
String sql = "INSERT INTO employee (id, name, salary, created_by, created_at) VALUES (?, ?, ?, ?, ?)";
jdbcTemplate.update(sql, employee.getId(), employee.getName(), employee.getSalary(), createdBy, new Date());
}
// Update employee with auditing fields
public void updateEmployee(Employee employee, String updatedBy) {
String sql = "UPDATE employee SET name = ?, salary = ?, updated_by = ?, updated_at = ? WHERE id = ?";
jdbcTemplate.update(sql, employee.getName(), employee.getSalary(), updatedBy, new Date(), employee.getId());
}
}
class Employee {
private int id;
private String name;
private double salary;
// Getters and Setters
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
}
এখানে EmployeeDao ব্যবহার করে একটি কর্মী ইনসার্ট এবং আপডেট করা হবে:
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class HelloSpringJDBCWithAuditing {
public static void main(String[] args) {
// Load the Spring context
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
// Get the EmployeeDao bean
EmployeeDao employeeDao = (EmployeeDao) context.getBean("employeeDao");
// Create a new employee
Employee employee = new Employee();
employee.setId(1);
employee.setName("John Doe");
employee.setSalary(50000);
// Add employee with auditing
employeeDao.addEmployee(employee, "admin");
// Update employee with auditing
employee.setSalary(55000);
employeeDao.updateEmployee(employee, "admin");
}
}
Auditing একটি গুরুত্বপূর্ণ প্রক্রিয়া যা ডেটাবেসের সুরক্ষা, ট্র্যাকিং এবং আইনগত মান বজায় রাখতে সাহায্য করে। স্প্রিং জেডিবিসি ব্যবহার করে আপনি সহজেই ডেটাবেসের সৃষ্টির সময়, আপডেট এবং মুছে ফেলার লগ রাখতে পারেন, যা পরে ভবিষ্যতে রেকর্ডগুলো পুনরুদ্ধার করতে, অডিট করতে এবং নিরাপত্তা বজায় রাখতে সহায়ক হয়।